/**
 * 版权所有（c）2021. 上海海鼎信息工程股份有限公司，保留所有权利
 */
package com.lovely602.design.behavior.templatemethod;

/**
 * 抽象类
 *
 * @author lizhixing
 */
public abstract class AbstractClass {

  /**
   * 模板方法
   */
  public void templateMethod() {
    abstractMethod1();
    specificMethod();
    abstractMethod2();
  }

  /**
   * 抽象方法1
   */
  protected abstract void abstractMethod1();

  /**
   * 抽象方法2
   */
  protected abstract void abstractMethod2();

  /**
   * 具体方法
   */
  private void specificMethod() {
    System.out.println("抽象类中的具体方法被调用...");
  }
}
